#pragma once
#include <iostream>
#include <sstream>
#include <string>

using namespace std;
class InterestTable
{
public:
	bool movies, dance, sports, travel, animals, gaming;

	InterestTable(void)
	{
		this->movies = false;
		this->dance = false;
		this->sports = false;
		this->travel = false;
		this->animals = false;
		this->gaming = false;
	}

	InterestTable( bool movies, bool dance, bool sports, bool travel, bool animals, bool gaming )
	{
		this->movies = movies;
		this->dance = dance;
		this->sports = sports;
		this->travel = travel;
		this->animals = animals;
		this->gaming = gaming;
	}

	~InterestTable(void)
	{
	}

	friend ostream &operator<<( ostream &out, InterestTable &it )
	{
		out << "[";
		out << it.movies << ",";
		out << it.dance << ",";
		out << it.sports << ",";
		out << it.travel << ",";
		out << it.animals << ",";
		out << it.gaming;
		out << "]";
		return out;
	}

	friend istream &operator>>( istream &in, InterestTable &it )
	{
		char dummyChar;

		in >> dummyChar; // Skip '['
		in >> it.movies >> dummyChar;
		in >> it.dance >> dummyChar;
		in >> it.sports >> dummyChar;
		in >> it.travel >> dummyChar;
		in >> it.animals >> dummyChar;
		in >> it.gaming >> dummyChar; // skips ']'

		return in;
		
	}



#pragma region Getters
	bool GetMovies() { return this->movies; }
	bool GetDance() { return this->dance; }
	bool GetSports() { return this->sports; }
	bool GetTravel() { return this->travel; }
	bool GetAnimals() { return this->animals; }
	bool GetGaming() { return this->gaming; }  
#pragma endregion


#pragma region Setters
	void SetMovies( bool movies ) { this->movies = movies; }
	void SetDance( bool dance ) { this->dance = dance; }
	void SetSports( bool sports ) { this->sports = sports; }
	void SetTravel( bool travel ) { this->travel = travel; }
	void SetAnimals( bool animals ) { this->animals = animals; }
	void SetGaming( bool gaming ) { this->gaming = gaming; }  
#pragma endregion

};

